package com.lhoverc.service.activity;

import com.lhoverc.pojo.PageBean;
import com.lhoverc.pojo.VO.ActivityVO;
import com.lhoverc.pojo.entity.ActivityEntity;
import com.lhoverc.pojo.entity.ActivityParticipationEntity;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @Author: LiCheng
 * @CreateTime: 2025-04-20
 * @Description:
 * @Version: 1.0
 */
public interface ActivityService {

    /**
     * 获取最近的活动（仅限于申请中、报名中、活动中）
     * @return
     */
    PageBean getRecentActivity();

    /**
     * 获取历史活动记录
     * @param activityName
     * @param status
     * @param registrationDate
     * @param activityDate
     * @return
     */
    List<ActivityVO> getActivityList(String activityName, Integer status, LocalDateTime registrationDate, LocalDateTime activityDate);

    /**
     * 添加活动
     * @param activityEntity
     */
    void addActivity(ActivityEntity activityEntity);

    /**
     * 用户报名活动
     * @param userId
     * @param activityId
     */
    void addRegisterActivity(Integer userId, Integer activityId);

    /**
     * 获取报名的活动
     * @param userId
     * @return
     */
    List<Integer> getRegisterActivities(Integer userId);

    /**
     * 用户取消报名
     * @param userId
     * @param activityId
     */
    void deleteRegisterActivity(Integer userId, Integer activityId);

    /**
     * 删除活动
     * @param id
     */
    void deleteActivity(String id);

    /**
     * 修改活动信息
     * @param activityEntity
     */
    void updateActivity(ActivityEntity activityEntity);
}
